/*
 * Copyright 2020 eBlocker Open Source UG (haftungsbeschraenkt)
 *
 * Licensed under the EUPL, Version 1.2 or - as soon they will be
 * approved by the European Commission - subsequent versions of the EUPL
 * (the "License"); You may not use this work except in compliance with
 * the License. You may obtain a copy of the License at:
 *
 *   https://joinup.ec.europa.eu/page/eupl-text-11-12
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" basis,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
 * implied. See the License for the specific language governing
 * permissions and limitations under the License.
 */
package org.eblocker.registration.error;

public class ClientRequestException extends RuntimeException {

    private final String method;

    private final String url;

    private final int status;

    private final ClientRequestError error;

    public ClientRequestException(String method, String url, int status, ClientRequestError error) {
        super(method+" "+url+" returned "+status+" "+(error.getError() == null ? error.getMessage() : error.getError()));
        this.method = method;
        this.url = url;
        this.status = status;
        this.error = error;
    }

    public ClientRequestException(String method, String url, int status, String error) {
        super(method+" "+url+" returned "+status+" "+(error == null ? "<null>" : error));
        this.method = method;
        this.url = url;
        this.status = status;
        this.error = null;
    }

    public String getMethod() {
        return method;
    }

    public String getUrl() {
        return url;
    }

    public int getStatus() {
        return status;
    }

    public ClientRequestError getError() {
        return error;
    }

}
